package com.authine.cloudpivot.ext.dto.finance;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 回写财务模块中的金税编码
 *
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@ApiModel("金税编码query")
@Accessors(chain = true)
public class GoldenTaxUpdateModel implements Serializable {

    private static final long serialVersionUID = -2517064806346112827L;
    /**
     * 订单商品ID
     */
    @ApiModelProperty(value = "ID", hidden = true)
    private String orderGoodsId;
    /**
     * 发票明细ID，用作页面使用者精确回写具体的发票明细的金税编码
     */
    @ApiModelProperty("发票明细ID")
    private String invoiceDetailId;

    /**
     * 金税发票单ID
     */
    private String goldenTaxId;
    /**
     * 金税编码
     */
    @ApiModelProperty("金税编码")
    private String goldenTax;
    /**
     * 修改之前的金税编码
     */
    @ApiModelProperty(value = "修改之前的金税编码", hidden = true)
    private String oldGoldenTax;
    /**
     * 商品名称
     */
    @ApiModelProperty(value = "商品名称", hidden = true)
    private String name;
    /**
     * 型号 规格
     */
    @ApiModelProperty(value = "型号 规格", hidden = true)
    private String modelSpec;
    /**
     * 单位
     */
    @ApiModelProperty(value = "单位", hidden = true)
    private String unit;
    /**
     * 数量
     */
    @ApiModelProperty(value = "数量", hidden = true)
    private BigDecimal quantity;
    /**
     * 含税单价
     */
    @ApiModelProperty(value = "含税单价", hidden = true)
    private BigDecimal grossPrice;
    /**
     * 修改金税发票明细时使用
     */
    @ApiModelProperty(value = "修改金税发票明细时使用", hidden = true)
    private Boolean ifUpdate = false;

    /**
     * 开票信息
     */
    @ApiModelProperty("票面 购买方名称 *如果是固买则是向供应商采购")
    private String purchaseName;
    @ApiModelProperty("票面 购买方纳税人识别号")
    private String purchaseNumber;
    @ApiModelProperty("票面 购买方地址 电话")
    private String purchaseAddressPhone;
    @ApiModelProperty("票面 购买方开户行 账号")
    private String purchaseBankAccount;
    @ApiModelProperty("票面 备注")
    private String memo;

}
